package isg3.domain;

import isg3.data.*;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class Tablon {
	
	private List<Evento> eventos;
	
	private List<Concurso> concursos;
	
	private List<Prestamo> prestamos;
	
	private List<Anuncio> anuncios;
	
	private static Tablon t;
	
	public static synchronized Tablon getInstance()
	{
		if (t==null)
			t= new Tablon();
		return t;
	}
	
	private Tablon(){
		this.eventos = (new JDBCEventoDAO()).selectAllEventos();
		this.concursos = (new JDBCConcursoDAO()).selectAllConcursos();
		this.prestamos = (new JDBCPrestamoDAO()).selectAllPrestamos();
		
	}
	
	
	
	public List getConcursos() {
		concursos = (new JDBCConcursoDAO()).selectAllConcursos();
		return concursos;
	}

	public Concurso getConcurso(String titulo) {
		Concurso result = null;
		for (Iterator iter = concursos.iterator(); iter.hasNext();) {
			Concurso c = (Concurso) iter.next();
			if (c.getTitulo().compareTo(titulo) == 0) {
				result = c;
			}
		}
		return result;
	}
	
	public List getEventos() {
		eventos = (new JDBCEventoDAO()).selectAllEventos();
		return eventos;
	}

	public Evento getEvento(String titulo) {
		Evento result = null;
		for (Iterator iter = eventos.iterator(); iter.hasNext();) {
			Evento e = (Evento) iter.next();
			if (e.getTituloEvento().compareTo(titulo) == 0) {
				result = e;
			}
		}
		return result;
	}
	public List getPrestamos() {
		return prestamos;
	}

	public Prestamo getPrestamo(String idPrestamo) {
		Prestamo result = null;
		for (Iterator iter = prestamos.iterator(); iter.hasNext();) {
			Prestamo p = (Prestamo) iter.next();
			if (p.getIdPrestamo().compareTo(idPrestamo) == 0) {
				result = p;
			}
		}
		return result;
	}
	
	public List getAnuncios() {
		return anuncios;
	}

	public Anuncio getAnuncio(String idA) {
		Anuncio result = null;
		for (Iterator iter = anuncios.iterator(); iter.hasNext();) {
			Anuncio a = (Anuncio) iter.next();
			if (a.getIdAnuncio().compareTo(idA) == 0) {
				result = a;
			}
		}
		return result;
	}

}
